//
// Color.hpp for  in ~/Dropbox/Projets/raytracer-2016/Includes/Maths/
//
// Made by Jonathan
// Login   <ledey_l@epitech.net>
//
// Started on  Sun Sep 22 17:01:02 2013 Jonathan
// Last update Sun Sep 22 17:23:56 2013 Jonathan
//

#ifndef			COLOR_HPP_
# define		COLOR_HPP_

# include		<cmath>

namespace		Maths
{
  class			Color
  {
  private:
    long double		mR;
    long double		mG;
    long double		mB;

  protected:

  public:
    Color(void);
    Color(long double rValue);
    Color(long double rR, long double rG, long double rB);
    Color(Color const &rOther);
    Color		&operator=(Color const &rOther);
    ~Color(void);

    bool		operator==(Color const &rOther) const;
    bool		operator!=(Color const &rOther) const;
    Color		operator+(Color const &rOther) const;
    Color		operator*(long double rValue) const;
    Color		operator*(Color const &rOther) const;
    Color		operator/(long double rValue) const;
    Color		&operator+=(Color const &rOther);
    Color		&operator*=(long double rValue);
    Color		&operator/=(long double rValue);
    long double		operator[](int rIndex) const;
    Color		PowC(long double rValue) const;
    long double		Average(void) const;
  };
  Color			operator*(long double rValue, Color const &rColor);
};

#endif			/* COLOR_HPP_ */
